<?php

class CRUD_Archivos {

    var $constant = "AVALADO";
    var $constantfec = "Of.";
    var $constantfec2 = "DP";
    //var $constant2 = "licenciatura ";

    var $constant2="pem ";

    function getvalues($colum, $filename) {
        echo "<br>" . $filename . "<br>";
        include("Modelo/conexionphp.php");
        //$this->$constant="AVALADO por Junta Directiva de la Facultad de Humanidades, en el punto";
        // Test CVS
        // echo "no lo se :(<br>";
        //echo "no lo se pero ñañito conexión  no la hace por ser ordoñez";
        require_once 'ModuloCRUDArchivos/phpExcelReader/reader.php';

        // ExcelFile($filename, $encoding);
        $data = new Spreadsheet_Excel_Reader();

        // Set output Encoding.
        $carnets = array();
        $code = "";
        $id_sede = array();
        $cod_carrera = "";
        $acta = "";
        $fecha_cierre = array();
        $fecha_emision = "";
        $nombre = array();
        $punto = "QUINTO";
        $fecha_fin = "";
        $data->setOutputEncoding('CP1251');
        $data->read($filename);
        error_reporting(E_ALL ^ E_NOTICE);
        $comodin = $colum;
        // echo "no lo se :(  2<br>";
        foreach ($data->sheets as $x => $y) {
            //getting the name of the sheet
            // echo "no lo se :(  3<br>";
            //$cod_carrera=$data->boundsheets[$x]['name'];
            for ($i = 1; $i <= $data->sheets[$x]['numRows']; $i++) {
                $colum = $comodin;
                // echo "no lo se :(  4 <br>";
                //echo "no lo se :(  $i <br>";
                //codigo carreraLICENCIATURA
                $carreraCod = trim(strval($data->sheets[$x]['cells'][$i][1]));
                //echo substr(strtolower($carreraCod), 0,3);
                //$pos=strpos($carreraCod,$this->constant2);

                $valore2 = substr(strtolower(strval($carreraCod)), 0, 27);
                $valore = (string) $valore2;
                $valido = split('PEM', trim(strval($valore)));
                //echo $valore."--------".$carreraCod."////////////////".count($valido)."<br>";
                //echo "<br>".strtolower(strval($data->sheets[$x]['cells'][$i][1]))."---------------------------------<br>";
                if (!(strpos(strtolower(strval($data->sheets[$x]['cells'][$i][1])), $this->constant2) === false)) {
//                    echo "---sii :(--".$cod_carrera."LKSKLKLD";
                    $cod_carrera = strtoupper($data->sheets[$x]['cells'][$i][1]);
                    // echo $cod_carrera."/****************4545999**************************************************/<br>";  
                }
                if (count($valido) > 1) {
                    //$cod_carrera = $data->sheets[$x]['cells'][$i][$colum-1];
                    //echo $cod_carrera."/****************4545888**************************************************/<br>";  
                } else {
                    //echo $carreraCod."/****************4545**************************************************/<br>";    
                }



                $celda = $data->sheets[$x]['cells'][$i][$colum];
                //if the celd is a carnet
                if (strlen(trim($celda)) > 3 && is_numeric($celda)) {
                    //echo "<br> entro en el primero <br>";
                    //echo "<br>".$data->sheets[$x]['cells'][$i][$colum - 2]." entro en el primero <br>".$data->sheets[$x]['cells'][$i][$colum - 1];
                    if (strlen($data->sheets[$x]['cells'][$i][$colum - 2]) > 10) {
                        $nombre[] = $data->sheets[$x]['cells'][$i][$colum - 2];
                    } else {
                        $nombre[] = $data->sheets[$x]['cells'][$i][$colum - 1];
                    }
                    $carnets[] = $celda;
                    if (strlen($data->sheets[$x]['cells'][$i][$colum + 2]) > 1) {
                        $fecha_cierre[] = $data->sheets[$x]['cells'][$i][$colum + 2];
                        if (strlen($data->sheets[$x]['cells'][$i][$colum + 4]) > 3) {
                            $id_sede[] = $data->sheets[$x]['cells'][$i][$colum + 4];
                        } else {
                            $id_sede[] = $data->sheets[$x]['cells'][$i][$colum + 3];
                        }
                    } else {
                        $fecha_cierre[] = $data->sheets[$x]['cells'][$i][$colum + 3];
                        if (strlen($data->sheets[$x]['cells'][$i][$colum + 5]) > 3) {
                            $id_sede[] = $data->sheets[$x]['cells'][$i][$colum + 5];
                        } else {
                            $id_sede[] = $data->sheets[$x]['cells'][$i][$colum + 4];
                        }
                    }
                } else {
                    $colum = $colum - 1;
                    $celda = $data->sheets[$x]['cells'][$i][$colum];
                    if (strlen($celda) > 0 && is_numeric($celda)) {
                        // echo "<br> entro en el segundo <br>";
                        $nombre[] = $data->sheets[$x]['cells'][$i][$colum - 1];
                        $carnets[] = $celda;
                        if (strlen($data->sheets[$x]['cells'][$i][$colum + 2]) > 1) {
                            $fecha_cierre[] = $data->sheets[$x]['cells'][$i][$colum + 2];
                            $id_sede[] = $data->sheets[$x]['cells'][$i][$colum + 4];
                        } else {
                            $fecha_cierre[] = $data->sheets[$x]['cells'][$i][$colum + 3];
                            $id_sede[] = $data->sheets[$x]['cells'][$i][$colum + 5];
                        }
                    } else {
                        $colum = $comodin + 1;
                        $celda = $data->sheets[$x]['cells'][$i][$colum];
                        if (strlen($celda) > 0 && is_numeric($celda)) {
                            echo "<br> entro en el segundo <br>";
                            $nombre[] = $data->sheets[$x]['cells'][$i][$colum - 3];
                            $carnets[] = $celda;
                            if (strlen($data->sheets[$x]['cells'][$i][$colum + 2]) > 1) {
                                $fecha_cierre[] = $data->sheets[$x]['cells'][$i][$colum + 2];
                                $id_sede[] = $data->sheets[$x]['cells'][$i][$colum + 4];
                            } else {
                                $fecha_cierre[] = $data->sheets[$x]['cells'][$i][$colum + 3];
                                $id_sede[] = $data->sheets[$x]['cells'][$i][$colum + 5];
                            }
                        } else {
                            $colum = $comodin + 2;
                            $celda = $data->sheets[$x]['cells'][$i][$colum];
                            if (strlen($celda) > 0 && is_numeric($celda)) {
                                echo "<br> entro en el segundo <br>";
                                $nombre[] = $data->sheets[$x]['cells'][$i][$colum - 4];
                                $carnets[] = $celda;
                                if (strlen($data->sheets[$x]['cells'][$i][$colum + 2]) > 1) {
                                    $fecha_cierre[] = $data->sheets[$x]['cells'][$i][$colum + 2];
                                    $id_sede[] = $data->sheets[$x]['cells'][$i][$colum + 4];
                                } else {
                                    $fecha_cierre[] = $data->sheets[$x]['cells'][$i][$colum + 3];
                                    $id_sede[] = $data->sheets[$x]['cells'][$i][$colum + 5];
                                }
                            }
                        }
                    }
                }
                /* if (strlen($data->sheets[$x]['cells'][$i][$colum - 1]) < 5) {
                  $celda = $data->sheets[$x]['cells'][$i][$colum + 1];
                  if (strlen(trim($celda)) > 4 && is_numeric($celda)) {
                  $nombre[] = $data->sheets[$x]['cells'][$i][$colum - 1] . ". " . $data->sheets[$x]['cells'][$i][$colum];
                  $id_sede[] = $data->sheets[$x]['cells'][$i][$colum + 3];
                  $carnets[] = $celda;
                  $fecha_cierre[] = $data->sheets[$x]['cells'][$i][$colum + 2];
                  }
                  } */


                //if the cell is a code of the page
                if (!(strpos($data->sheets[$x]['cells'][$i][$colum - 1], $this->constantfec) === false)
                        or !(strpos($data->sheets[$x]['cells'][$i][1], $this->constantfec) === false)
                        //  or !(strpos($data->sheets[$x]['cells'][$i][$colum], $this->constantfec) === false)
                        //  or !(strpos($data->sheets[$x]['cells'][$i][$colum + 1], $this->constantfec) === false)
                        //  or !(strpos($data->sheets[$x]['cells'][$i][$colum - 1], $this->constantfec2) === false)
                        or !(strpos($data->sheets[$x]['cells'][$i][1], $this->constantfec2) === false)
                //  or !(strpos($data->sheets[$x]['cells'][$i][$colum + 1], $this->constantfec2) === false)
                ) {


                    $fecha_emision = "";//$data->sheets[$x]['cells'][$i - 1][1];
                    if (strlen($fecha_emision) < 5) {
                        $fecha_emision = $data->sheets[$x]['cells'][$i + 1][1];
                        if (strlen($fecha_emision) < 2) {
                            $fecha_emision = $data->sheets[$x]['cells'][$i + 1][$colum];
                        }
                    }
                    if (strlen($fecha_emision) < 5) {
                        $fecha_emision = $data->sheets[$x]['cells'][$i - 2][1];
                    } 

                    //echo "<br>---".$fecha_emision." date :(<br>" ;




                    $codec = $data->sheets[$x]['cells'][$i][1];
                    if (strlen($codec) < 2) {
                        $codec = $data->sheets[$x]['cells'][$i][$colum];
                    }
                    if (strlen($codec) < 2) {
                        $codec = $data->sheets[$x]['cells'][$i][$colum + 1];
                    }
                    $codec1 = str_replace("p", "", strtolower($codec));
                    $codec2 = str_replace("d", "", strtolower($codec1));
                    $codec3 = str_replace("f", "", strtolower($codec2));
                    $codec4 = str_replace("o", "", strtolower($codec3));
                    $code = trim($codec4);

                    //  echo $data->sheets[$x]['cells'][$i][$colum+1]."-////-"."<br>";
                }
                //if the cell contains avalado
                if (!(strpos($data->sheets[$x]['cells'][$i][1], $this->constant) === false)
                        or !(strpos($data->sheets[$x]['cells'][$i][2], $this->constant) === false)) {
                    $acta = $data->sheets[$x]['cells'][$i + 1][1]
                            . $data->sheets[$x]['cells'][$i + 1][2]
                            . $data->sheets[$x]['cells'][$i + 1][3]
                            . $data->sheets[$x]['cells'][$i + 1][4]
                            . $data->sheets[$x]['cells'][$i + 1][5]
                            . $data->sheets[$x]['cells'][$i + 1][6]
                            . $data->sheets[$x]['cells'][$i + 1][7]
                            . $data->sheets[$x]['cells'][$i + 1][8]
                            . $data->sheets[$x]['cells'][$i + 1][9]
                            . $data->sheets[$x]['cells'][$i + 1][10];

                    $splitActa = split("de fecha", $acta);
                    $acta2 = $splitActa[0];
                    $fecha_fin = $splitActa[1];
                    $punto = $data->sheets[$x]['cells'][$i][2];
                    if(strlen($punto)<4){
                        $punto= $data->sheets[$x]['cells'][$i][3];    
                    }
                    //echo "----**$acta2---*-*-* $fecha_fin"."/*********$acta" ;

                    echo $this->insert($carnets, $nombre, $code, $fecha_cierre, $id_sede, $cod_carrera, $acta2, $fecha_emision, $punto, $fecha_fin);
                    $carnets = array();
                    $code = "";
                    $id_sede = array();
                    $fecha_cierre = array();
                    $fecha_emision = "";
                    $nombre = array();

                    //echo $data->sheets[$x]['cells'][$i][$colum-2]."--"."<br>";
                }
            }
        }
        //echo "begin------";
        //foreach($carnets as $carnet){
        //  echo $carnet."<br>";
        //}
    }

    function insert($carnets, $nombre, $codes, $date_p, $id_sede, $cod_carrera, $acta, $fecha_emision, $punto, $fecha_fins) {

        $fecha_fin2 = str_replace(".", "", $fecha_fins);

        $codigin1 = trim($codes);
        $codigin = str_replace(" ", "", $codigin1);
        $code = trim(substr($codigin, -9));
        if (!(strpos(",", $code) == false)) {
            $code = str_replace(",", ".", $code);
        }
        $cadena = "<br><br><br>BEGINING " . $code . "--" . $fecha_emision . "----" . $cod_carrera . "<br>";
        $cadena = $cadena . $this->getdate($fecha_emision) . "<br>";
        $i = 0;
        $punto = trim(str_replace("PUNTO", "", strtoupper($punto)));

        $encontrado = strpos($acta, ",");

        if ($encontrado == false) {
            //inciso 5.2 subinciso 5.2.13 del Acta No. 027-2006
            $acta = str_replace("del", ",", $acta);
        }
        //inciso 5.2 subinciso 5.2.19, del Acta No. 027-2006
        $incisoActa = split(",", $acta);
        $sub = str_replace("inciso", "", strtolower($incisoActa[0]));
        $subeinciso = split("sub", $sub);
        $inciso = trim($subeinciso[0]); //substr($sub, 0,4);
        $subinciso = trim($subeinciso[1]); //substr($sub,-7);        
        $actaReal = substr(trim($incisoActa[1]), -8);

        if (strpos($punto, "O") == false) {
            $punto = "QUINTO";
        }
        $fecha_fin = $this->getdate2($fecha_fin2);
        $cadena = $cadena . "carnet--" . "codigo_Carrera" . "fecha_cierre" . "" . "<br>";


        foreach ($carnets as $carnet) {
            $fechaCierre = $this->getcierre($date_p[$i]);

            $cadena = $cadena . $carnet . "--" . $id_sede[$i] . "--" . $fechaCierre . "--:S--" . $date_p[$i] . "---<br>";
            //$code,$carnet,$fecha_ingreso, $id_sede, $fechafin,$carrera,
            //$fecha_emision,$acta,$inciso,$subinciso,$punto,$fechaCierre
            /* $cadena =$cadena.$this->sendMysql("","",
              "",
              "",
              "",
              "",
              "",
              "",
              "",
              "",
              "","",""); */
            // $code,$carnet,$nombre,$fecha_ingreso, $id_sede, $fechafin,$carrera,
            // $fecha_emision,$acta,$inciso,$subinciso,$punto,$fechaCierre
            //echo "<br> llega men 1".$nombre[$i]."<br>";
            // $nombres = str_replace(".", ",", $nombre[$i]);
            //$name_alumn = split(",", $nombre[$i]);
            // echo "<br> llega men2".$name_alumn[1]."<br>";
            echo $this->sendMysql($code, $carnet, $nombre[$i],
                    //$nombre[$i],
                    $this->getdate($fecha_emision), $id_sede[$i], $fecha_fin, $cod_carrera, $this->getdate($fecha_emision), $actaReal, $inciso, $subinciso, $punto, $fechaCierre);


            $i++;
        }





        $cadena = $cadena . "<br>" . $acta . "<br>";
        $cadena = $cadena . $inciso . "--inciso<br>";
        $cadena = $cadena . $subinciso . "--subinciso<br>";
        $cadena = $cadena . $actaReal . "--actareal<br>";
        $cadena = $cadena . $punto . "--punto<br>";
        $cadena = $cadena . $fecha_fin . "--fecha_fin<br>";
        return $cadena;
    }

    function sendMysql($code, $carnet, $nombre, $fecha_ingreso, $id_sede, $fechafin, $carrera, $fechaEmision, $acta, $inciso, $subinciso, $punto, $fechaCierre) {
        $fechaEmision = trim($fechaEmision);
        $fechaCierre = trim($fechaCierre);
        $fechafin = trim($fechafin);
        $fecha_ingreso = trim($fecha_ingreso);
        /* code
          carnet
          fecha_ingreso
          sede
          fechafin
          carrera
          fecha_emision
          acta
          inciso
          subinciso
          punto
          fecha_cierre
         */
        //$cadena="carnet--"."codigo_Carrera"."fecha_cierre".""."<br>";
        //$cadena=$cadena.$carnet."--".$id_sede[$i]."--".$date_p[$i]."--"."<br>";
        //2011_pem 
        $nombres = str_replace("**", "Ñ", $nombre);
        $sql = "Insert into maestra_pem_2011 values(null,
                '$code',
                $carnet,
                '$nombres',
                str_to_date('$fecha_ingreso', '%d/%m/%Y'),
                '" . $id_sede . "',
                str_to_date('$fechafin', '%d/%m/%Y'),
                '$carrera',
                str_to_date('$fechaEmision', '%d/%m/%Y'),
                '$acta',
                '$inciso',
                '$subinciso',
                '$punto',
                str_to_date('$fechaCierre', '%d/%m/%Y'));";


        $conection = new DBManager;
        if ($conection->conectar() == true) {
            //$val=mysql_query("Select * from User");
            //$val = mysql_query($sql);

            //         "Insert into maestra values(null,$code,$carnet,$fecha_ingreso,
            //             ,$id_sede,$fechafin,$carrera,$fecha_emision,$acta,$inciso,
            //                  $subinciso,$punto,$fechaCierre)");
        }

        $conection->cerrar();


        return $sql . "<br>";
        //return "****<br>";              
    }

    function getdate2($date) {
        $newdate = $date;
        //echo $newdate."*---------************";
        if ((strpos("de ", $newdate) == false)) {
            $dates = split(" de ", $newdate);
            if (count($dates) > 2) {
                return trim($dates[0]) . "/" . $this->getmes(trim($dates[1])) . "/" . trim($dates[2]);
            } else {
                echo substr($dates[0], 2) . "--------------------------------------****" . substr(trim($dates[0]), 2);
                return trim(substr($dates[0], 0, 2)) . "/" . $this->getmes(trim(substr(trim($dates[0]), 2))) . "/" . trim($dates[1]);
            }
        }
        return "01/01/1990";
    }

    function getdate($date) {


        if ((strpos("Guatemala,", $date) === false)) {
            $fechanueva = split(",", $date);
            $newdate = $fechanueva[1];
        } else {
            $newdate = substr($date, 10);
        }
        //echo $newdate."*---------************";
        if ((strpos("de ", $newdate) == false)) {
            $dates = split(" de ", $newdate);
            // return $dates[0]."/".$this->getmes(trim($dates[1]))."/".$dates[2];

            if (count($dates) > 2) {
                return trim($dates[0]) . "/" . $this->getmes(trim($dates[1])) . "/" . trim($dates[2]);
            } else {
                //return $dates[0]."/".$this->getmes(trim($dates[1]))."/".$dates[2];
                echo substr(trim($dates[0]), 0, 2) . "--------------------------------------****" . substr(trim($dates[0]), 2) . "<br>";
                return substr(trim($dates[0]), 0, 2) . "/" . $this->getmes(trim(substr(trim($dates[0]), 2))) . "/" . trim($dates[1]);
                //return trim(substr(trim($dates[0]), 0,2))."/".$this->getmes(trim(substr(trim($dates[0]), 2)))."/".$dates[1];
            }
        }
        return "01/01/1990";
    }

    function getcierre($date) {
        if (!(strpos($date, "/") === false)) {

            return $date;
        }
        if (strpos($date, ",") == false) {
            $date2 = str_replace(".", ",", $date);
            $date = str_replace("-", ",", $date2);
            $list = split(",", $date);
            if (count($list) > 2) {
                return str_replace(",", "/", $date);
            }
            return "01/" . $this->getmes($list[0]) . "/" . trim($list[1]);
        } else {
            return str_replace(",", "/", $date);
        }
    }

    function getmes($mes1) {
        $mes=  trim($mes1);
        /// echo "<br>************".strtoupper($mes)."****"."*********<br>";
        if (strtoupper($mes) == "ENERO" || strtoupper($mes) == "ENE")
            return "01";
        if (strtoupper($mes) == "FEBRERO" || strtoupper($mes) == "FEB")
            return "02";
        if (strtoupper($mes) == "MARZO" || strtoupper($mes) == "MAR" || strtoupper($mes) == "MARZ")
            return "03";
        if (strtoupper($mes) == "ABRIL" || strtoupper($mes) == "ABR")
            return "04";
        if (strtoupper($mes) == "MAYO" || strtoupper($mes) == "MAY")
            return "05";
        if (strtoupper($mes) == "JUNIO" || strtoupper($mes) == "JUN")
            return "06";
        if (strtoupper($mes) == "JULIO" || strtoupper($mes) == "JUL")
            return "07";
        if (strtoupper($mes) == "AGOSTO" || strtoupper($mes) == "AGO")
            return "08";
        if (strtoupper($mes) == "SEPTIEMBRE" || strtoupper($mes) == "SEP" || strtoupper($mes) == "SEPT")
            return "09";
        if (strtoupper($mes) == "OCTUBRE" || strtoupper($mes) == "OCT")
            return "10";
        if (strtoupper($mes) == "NOVIEMBRE" || strtoupper($mes) == "NOV")
            return "11";
        if (strtoupper($mes) == "DICIEMBRE" || strtoupper($mes) == "DIC")
            return "12";
        return "13";
    }

    function contains($str, $content, $ignorecase = true) {
        if ($ignorecase) {
            $str = strtolower($str);
            $content = strtolower($content);
        }
        return strpos($content, $str) ? true : false;
    }

}

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
?>
